#include "UnidadLogica.h"

UnidadLogica* UnidadLogica::instancia = 0;

UnidadLogica::UnidadLogica() {
	anchoUL = 5;
	altoUL = 5;
}

UnidadLogica* UnidadLogica::obtenerInstancia() {
	if (instancia == 0)
			{
		instancia= new UnidadLogica();
	}
	return instancia;
}

double UnidadLogica::getAltoUl() const {
	return altoUL;
}

void UnidadLogica::setAltoUl(double altoUl) {
	altoUL = altoUl;
}

double UnidadLogica::getAnchoUl() const {
	return anchoUL;
}

void UnidadLogica::setAnchoUl(double anchoUl) {
	anchoUL = anchoUl;
}


pair<double,double> UnidadLogica::convertirULAPixel(double xUL, double yUL){
	double pixelX = xUL * this->getAnchoUl();
	double pixelY = yUL * this->getAltoUl();
	pair<double,double> par;
	par.first = pixelX;
	par.second = pixelY;
	return par;
}

pair<double,double> UnidadLogica::convertirPixelAUL(double xPix, double yPix){
	double xUL = xPix / this->getAnchoUl();
	double yUL = yPix / this->getAltoUl();
	pair<double,double> par;
	par.first = xUL;
	par.second = yUL;
	return par;

}

pair<double,double> UnidadLogica::convertirMetrosAUL(double xMetros, double yMetros){
	double xUL =  xMetros * ULm;
	double yUL =  yMetros * ULm;
	pair<double,double> par;
	par.first = xUL;
	par.second = yUL;
	return par;
}

pair<double,double> UnidadLogica::convertirULAMetros(double altoEnUL, double anchoEnUL){
	double xMUL =  altoEnUL * mUL ;
	double yMUL = anchoEnUL * mUL;
	pair<double,double> par;
	par.first = xMUL;
	par.second = yMUL;
	return par;
}

